home *** CD-ROM | disk | FTP | other *** search
/ Nebula 2 / Nebula Two.iso / Apps / ScreenSavers / BackSpaceViews / DigitalClockView.BackModule / Thinker.h < prev   
Text File  |  1995-06-12  |  4KB  |  213 lines

  1.  
  2. #define IB_PARSE_HACK 0
  3.  
  4. #import <appkit/Application.h>
  5. #import <appkit/View.h>
  6. #import <dpsclient/dpsNeXT.h>
  7. #include <sys/resource.h>
  8. #import <drivers/event_status_driver.h>
  9.  
  10. #import "ModuleList.h"
  11.  
  12. #define NOWINDOW        (0)
  13. #define NORMALWINDOW    (1)
  14. #define BACKWINDOW        (2)
  15.  
  16. #define SAVERTIER (50)
  17. #define BACKGROUNDTIER (-100)
  18.  
  19. // I'm not at all happy with BackSpace's time handling; it only works
  20. // for 49 days after rebooting (according to my calculations... I boot
  21. // a lot more often than that!) since it counds milliseconds in a
  22. // 32 bit unsigned int.  This problem would be solved if I stuffed the
  23. // time in a long long, but I think the compiler doesn't correctly do
  24. // 64 bit comparisons.  Time should probably stay in the unix
  25. // timeval struct.  Yuck! guess I should write functions for time
  26. // addition and comparison...
  27.  
  28. // typedef long long BStimeval;  //doesn't work
  29. typedef unsigned BStimeval;
  30.  
  31. // a function to return BackSpace's Thinker instance or it's equivalent
  32. id BSThinker();
  33.  
  34. enum BSEvents {BSDOSAVER, BSOPENFILE};
  35.  
  36. BStimeval currentTimeInMs();
  37.  
  38. float frandom();
  39. float randBetween(float a, float b);
  40.  
  41. @interface Thinker:Object
  42. {
  43.     id    spaceView;
  44.     
  45.     id    spaceWindow;
  46.     id    normalWindow;
  47.     id    bigUnbufferedWindow;
  48.     id    bigBufferedWindow;
  49.  
  50.     BOOL timerValid, keepLooping;
  51.     BOOL doingSaver;
  52.     DPSTimedEntry timer;
  53.     
  54.     int windowType;
  55.     int realViewIndex;
  56.     int virtualViewIndex;
  57.     NXRect windowRect;
  58.     
  59.     NXZone *backZone;
  60.     
  61.     int screenCount;
  62.     id windMatrix;
  63.  
  64.     id screenSaver;
  65.     id screenLocker;
  66.     BOOL screenSaverVal;
  67.     id mySlider;
  68.  
  69.     id priorityLevel;
  70.     int priority;
  71.     
  72.     NXEventHandle evs;    //event driver file descriptor
  73.     double dimBrightness, normalBrightness;
  74.     
  75.     id viewSelectionBrowser;
  76.     ModuleList *moduleList;
  77.     id imageView;
  78.     NXScreen *screens;
  79.     id screenList;
  80.  
  81.     id image;
  82.     int globalTier;
  83.     
  84.     id password;
  85.     
  86.     id invisibleInspectorBox;
  87.     id commonImageInspector;
  88.     id nullInspector;
  89.     id spaceInspector;
  90.     id boinkInspector;
  91.     id currentInspector;
  92.     NXRect inspectorFrame;
  93.     id oldInspectorOwner;
  94.     BOOL browserValid;
  95.     id infoPanel;
  96.  
  97.     
  98.     char *fileToOpen;
  99.     BOOL openAnother;
  100.  
  101.     int windowHasBeenDisplayed;
  102. }
  103.  
  104. - appDidInit:sender;
  105. - appDidHide:sender;
  106. - appDidUnhide:sender;
  107. - createTimer;
  108. - removeTimer;
  109. - doDistributorLoop;
  110.  
  111. - installSpaceViewIntoWindow:w;
  112. - useNormalWindow;
  113. - (int) backingTypeForView:aView;
  114. - useBackWindow:(int)tier;
  115. - createBigWindowIfNecessaryForView:aView;
  116.  
  117. - getWindowType;
  118. - changeWindowType:sender;
  119. - changeWindowTypeAndRemember:(BOOL)rem;
  120.  
  121. - getScreenSaverSetting;
  122. - changeScreenSaverSetting:sender;
  123. - setScreenSaver:(BOOL)val andRemember:(BOOL)rem;
  124. - calcDimTime;
  125. - maybeDoScreenSaver:sender;
  126. - applicationDefined:(NXEvent *)theEvent;
  127. - showFakeScreenSaverAfterPause:sender;
  128. - showFakeScreenSaver:sender;
  129. - doScreenSaver:sender;
  130.  
  131. - getPrioritySetting;
  132. - changeSliderValue:sender;
  133. - saveSliderValue;
  134.  
  135. - setImageFromFile: (const char *) filename;
  136. - setImageFromName: (const char *) name;
  137. - commonImageInit;
  138. - getImageFile;
  139. - setImageFileFrom: sender;
  140.  
  141. #if !IB_PARSE_HACK
  142. @end
  143.  
  144.  
  145. @interface Thinker(thinkMore)
  146. #endif
  147.  
  148. - getViewType;
  149. - selectRealViewIndex:sender;
  150. - setVirtualViewIndexAndIncrement:(BOOL)flag;
  151. - selectScreenSaverViews;
  152. - setWindowTitle;
  153.  
  154. - getScreenLockerSetting;
  155. - changeScreenLockerSetting:sender;
  156. - setScreenLocker:(BOOL)val andRemember:(BOOL)rem;
  157.  
  158. - backView;
  159. - showInfoPanel:sender;
  160.  
  161. #if !IB_PARSE_HACK
  162. @end
  163.  
  164.  
  165. @interface Thinker(ioctls)
  166. #endif
  167.  
  168. - normalMode;
  169. - screenSaverMode;
  170.  
  171. - blackOutAllScreens;
  172. - unBlackOutAllScreens;
  173.  
  174. - getDimBrightness:(double *)b;
  175. - _setDimBrightness :(double *)b;
  176.  
  177. - getNormalBrightness :(double *)b;
  178.  
  179. - getDimTime :(double *)t;
  180.  
  181. #if !IB_PARSE_HACK
  182. @end
  183.  
  184. @interface Thinker(inspector)
  185. #endif
  186.  
  187. - commonImageInspector;
  188. - nullInspector;
  189. - spaceInspector;
  190. - boinkInspector;
  191. - revertToDefaultImage:sender;
  192. - (BOOL)browser:sender columnIsValid:(int)column;
  193. - addCellWithString:(const char *)str at:(int)row toMatrix:matrix;
  194. - (int)browser:sender fillMatrix:matrix inColumn:(int)column;
  195.  
  196. - loadViewsFrom: (const char *) dirname;
  197. - doDelayedOpenFile;
  198.  
  199. - (const char *) appDirectory;
  200. - (const char *) moduleDirectory:(const char *)name;
  201. - (struct mach_header *) headerForModule:(const char *)name;
  202.  
  203. @end
  204.  
  205. @interface View(someOptionalMethods)
  206.  
  207. - newWindow;
  208. - enteredScreenSaverMode;
  209. - willExitScreenSaverMode;
  210.  
  211. @end
  212.  
  213.